Within the past decade, the advent of world-wide electronic communications systems has enhanced the way in which people can send and receive information. In particular, the capabilities of real-time video and audio systems have greatly improved in recent years. In order to provide services such as video-on-demand and video conferencing to subscribers an enormous amount of network bandwidth is required. In fact, network bandwidth is often the main inhibitor in the effectiveness of such systems.
In order to overcome the constraints imposed by networks, compression systems have emerged. These systems reduce the amount of video and audio data which must be transmitted by removing redundancy in the picture sequence. At the receiving end, the picture sequence is uncompressed and may be displayed in real-time.
One example of an emerging video compression standard is the Moving Picture Experts Group ("MPEG") standard. Within the MPEG standard, video compression is defined both within a picture and between pictures. Video compression within a picture is accomplished by conversion of the digital image from the time domain to the frequency domain by a discrete cosine transform, quantization, variable length coding, and Huffman coding. Video compression between pictures is accomplished via a process referred to as motion estimation, in which a motion vector plus difference data is used to describe the translation of a set of picture elements (pels) from one picture to another.
The ISO MPEG2 standard specifies only the syntax of bitstream and semantics of the decoding process. The choice of coding parameters and tradeoffs in performance versus complexity is left to the encoder developers.
One aspect of the MPEG2 compliant encoding process is the computational intensive nature of the operation. With a picture size of 720.times.480 pixels at 30 picture frames per second, a picture must be processed in 33.3 milliseconds. A 16.times.16 pixel macroblock (with 1350 macroblocks per picture) must, on average, be processed in less than 24.7 microseconds. A large portion of macroblock processing time is spent in the motion estimation process where the goal is to detect temporal redundancy and to use it to efficiently compress the picture. Processing of a macroblock in less than 25 microseconds is thus a limiting factor on picture quality.
Another aspect of the MPEG2 compliant encoding process is the specified bit rate for the encoded video stream. A bit rate is defined in bits per second. Based on the frame rate and type of picture being encoded, a number of bits per picture is assigned. For example, at 6,000,000 bits per second (6 Mbps), and pictures at 30 picture frames per second, each picture would be allocated 200,000 bits assuming the bits are allocated uniformly. With a 720.times.480 picture having 1350 macroblocks, this translates to 148 bits allocated per macroblock. As with the above-described motion estimation process constraint, the number of bits allocated per macroblock has an impact on picture quality.
In view of these constraints, the present invention seeks to enhance picture quality compared with conventional real-time video encoding processes.